package LeetCode刷题;

import java.util.ArrayList;
import java.util.List;

/**
 * @program: Java_Study
 * @author: Xiaofan
 * @createTime: 2021-09-13 09:36
 * @description: Functions of this class is
 * 题意：
 * 每个数字等于上一行的左右两个数字之和，可用此性质写出整个杨辉三角。即第 n 行的第 i 个数等于第 n−1 行的第 i−1 个数和第 i 个数之和。这也是组合数的性质之一
 **/
public class NoNo杨辉三角 {
    public static void main(String args[]){
        System.out.println(generate(5));
    }
    public static List<List<Integer>> generate(int numRows) {
        List<List<Integer>> ans=new ArrayList<>();
        for(int i=0;i<numRows;i++){
            List<Integer> sub=new ArrayList<>();
            for(int j=0;j<=i;j++){
                if(j==0||j==i){
                    sub.add(1);//如果时首位元素的话，就直接添加1
                }
                else{
                    sub.add(ans.get(i-1).get(j-1)+ans.get(i-1).get(j));//否则的话就添加上一行，该元素对应
                }
            }
            ans.add(sub);
        }
        return ans;
    }
}